Files are standard compiled xml documents.
GOBJ at 0x8 identifies the filetype.

GOBJ {
	block_16	long	version ID.  usually 00000101
	Chunk_4112{}	struct	GeometryData containing mesh data
	Chunk_6688{}	struct	AnimationData containing frame data; includes name, orientation, etc.
	}

struct GeometryData Chunk_4112
	{
	Chunk_4112{}	struct	MeshTable
	Chunk_4160{}	struct	MaterialTable
	Chunk_4192{}	struct	???BlockTable
	Chunk_4224{}	struct	???BlockTable
	Chunk_4240{}	struct	
	Chunk_4264{}	struct	???BlockTable
	block_4272	long	
	block_4288	long
	Chunk_4320{}	struct	
	}

struct MeshTable Chunk_4112
	{
	block_4112	long	#parts
	Chunk_4112{}	struct	MeshPart
	}

struct MeshPart Chunk_4112
	{
	block_8208	string	name
	block_8224	long	
	block_8240	long	
	block_8241	long	
	block_8242	long	
	block_8243	long	
	block_8544	#faces
	block_8576	#matrices
	block_8592	struct matrices[]
	block_8560	long[4][]={v1, v2, v3, reserved}
	block_8608	#Parts
	Chunk_8608{}	struct	Part
	Chunk_8741{}	struct	Mesh
	block_8752	long	
	block_8768	long	
	block_8791	long	
	}

struct matrices
	{
	long	index (start at 1)
	float[4][4]	4x4matrix
	}

struct Part Chunk_8608
	{
	block_8624	long	
	block_8640	long	
	block_8656	long	#faces
	block_8672	long	
	block_8688	long	
	block_8704	long	#vertices
	block_8720	long	#matrix assignments
	block_8736	long[]	matrix assignment table (index or -1 for default)
	}

struct Mesh Chunk_8741
	{
	block_4096	long	#vertices
	block_4112	float[3][]={x.pos, y.pos, z.pos; etc.}
	block_4128	long	#UVset0
	block_4144	short[2][]={U, V; etc.}
	block_4192	long	#UVset3
	block_4208	short[2][]={U, V; etc.}
	block_4288	#???colour
	block_4304	struct[]=???colour
	block_4352	#faces
	block_4368	short[4][]={v1, v2, v3, reserved}
	block_4384	#???indices
	block_4400	char[]=???indices
	}

struct ???colour
	{
	char	
	char	
	char	
	char	
	long	RGBA
	char	
	char	
	char	
	char	
	char	
	char	
	}

struct MaterialTable Chunk_4160
	{
	block_4112	long #materials=1
	Chunk_4144{}	struct	Material declaration
	}

struct Material Chunk_4144
	{
	block_26112	string	xml-ish material declaration
	block_24592	long
	}

struct ???BlockTable Chunk_4192
	{
	block_4112	long	
	Chunk_4144{}	struct	???BlockIndex
	}

struct ???BlockIndex Chunk_4144
	{
	Chunk_4112{}	struct
	}

struct ???BlockIndex Chunk_4112
	{
	block_4096	long	
	block_4112	long	
	block_4128	long	
	block_4144	long	
	block_4160	long	
	block_4176	long	
	}

struct ???BlockTable Chunk_4224
	{
	block_4112	long	#items
	Chunk_4112{}	struct	SpecialIndex
	}

struct SpecialIndex Chunk_4112
	{
	block_36880	string	name
	block_36896	long	index
	}

struct ???BlockTable Chunk_4240
	{
	block_4112	long	#items
	block_4128	float[4]
	}

struct ???BlockTable Chunk_4264
	{
	block_4112	long	#items
	block_4128	char[58 per item?], always set to 0
	}

struct  Chunk_4320
	{
	Chunk_4323{}	struct	???ItemTable
	Chunk_4322{}	struct	
	}

struct ???ItemTable Chunk_4323
	{
	block_4324	long	#items
	Chunk_4096{}	struct	???Items
	}

struct ???Items Chunk_4096
	{
	block_4101	long	
	block_4112	long	
	block_4128	long long	
	}

struct  Chunk_4322
	{
	block_4323	long	#items
	Chunk_4096{}	struct	
	}

struct  Chunk_4096
	{
	Chunk_4112{}	struct	SlotTable
	Chunk_4144{}	struct	
	Chunk_4176{}	struct	
	}

struct SlotTable Chunk_4112
	{
	block_4128	long	#items
	Chunk_4096{}	struct	SlotEntry
	}

struct SlotEntry Chunk_4096
	{
	block_4112	string	name
	block_4144	long	#indices
	block_4128	long[]	indices
	}

struct  Chunk_4144
	{
	block_4160	long	#items
	Chunk_4096{}	struct	
	}

struct  Chunk_4096
	{
	block_4128	long	#entries_4112
	block_4112	long[]	
	block_4160	#matrices
	block_4144	struct matrices[]
	block_4176	char	
	}

struct  Chunk_4176
	{
	block_4192	long	#items
	Chunk_4096{}	struct	
	}

struct  Chunk_4096
	{
	block_4112	string	name
	block_4144	long	#items
	Chunk_4128{}	struct	
	}

struct  Chunk_4128
	{
	Chunk_4160{}	struct	
	}

struct  Chunk_4160
	{
	block_4192	long	#items
	block_4176	long[2][]={index,value; etc.}
	}

struct  Chunk_4336
	{
	block_4096	float	
	block_4112	float	
	block_4128	float	
	block_4144	float	
	block_4160	float	
	block_4176	float	
	block_4192	float	
	block_4208	float	
	block_4224	float	
	block_4240	long	
	block_4352	long	
	block_4368	char	
	}

struct AnimationData Chunk_6688
	{
	block_6691	long	#objects
	Chunk_6693{}	struct	FrameData parameters
	}

struct FrameData Chunk_6693
	{
	Chunk_6672{}	struct	FrameTable
	Chunk_6720{}	struct	???Table
	block_6736	long	#frames
	block_6752	string	name
	Chunk_6816{}	struct	BoundingBox
	Chunk_6832{}	struct	ScalePos
	}

struct FrameTable Chunk_6672
	{
	block_6672	long	#frame entries
	Chunk_6672{}	struct	Frame
	}

struct Frame Chunk_6672
	{
	block_40976	string	name
	block_40992	long
	block_41008	long
	block_41088	long	#entries
	block_41104	float[8][]={0.0,0.0,0.0,1.0, 0.0,0.0,0.0,1.0}
	}

struct ???Table Chunk_6720
	{
	block_6672	long	#entries
	Chunk_6672{}	struct	???
	}

struct ??? Chunk_6672
	{
	block_53264	long	
	block_53280	char	
	}

struct BoundingBox Chunk_6816
	{
	block_6672	float[3]={min.x, min.y, min.z}
	block_6688	float[3]={max.x, max.y, max.z}
	}

struct ScalePos Chunk_6832
	{
	block_6672	float[3]={x.rotation, y.rotation, z.rotation}
	block_6688	float	scale
	}

+_+




+_+

Basic models:
block_16	ver	00000101
Chunk_4112 {
	Chunk_4112 {
		block_4112	#objects=1
		Chunk_4112 {
			block_8208	string="part_name"
			block_8224	long=0
			block_8240	long=0
			block_8241	long=0
			block_8242	long=-1
			block_8243	long=-1
			block_8544	#faces
			block_8560	long[#faces]
			block_8608	#objects
			Chunk_8608 {
				block_8624	long=4
				block_8640	long=0
				block_8656	#faces
				block_8672	long=0
				block_8688	long=0
				block_8704	#vertices
				}
			Chunk_8741 {
				block_4096	#vertices
				block_4112	float[3][]={x.pos, y.pos, z.pos; etc}
				block_4128	#UVset0
				block_4144	short[2][]={u,v; etc.}
				block_4192	#UVset3
				block_4208	short[2][]={u,v; etc.}
				block_4352	#faces
				block_4368	short[4][]={v1, v2, v3, reserved; etc.}
				}
			block_8752	long=0
			block_8768	long=-1
			block_8791	long=0
			}
		}
	Chunk_4160 {
		block_4112	#materials=1
		Chunk_4144 {
			block_26112	string="<Material type=\"0\">\n\t<Param name=\"IsNormalMap\" value=\"true\" />\n\t<Texture channel=\"0\" value=\"image.ext\" />\n</Material>"
			block_24592	long=0
			}
		}
	Chunk_4264 {
		block_4112	#items=1
		block_4128	char[58]=0
		}
	block_4272	long=0
	block_4288	long=0
	}
Chunk_6688 {
	block_6691	#items=1
	Chunk_6693 {
		Chunk_6672 {
			block_6672	#items=1
			Chunk_6672 {
				block_40976	string="objname"
				block_40992	long=-1
				block_41008	long=0
				block_41088	long=1
				block_41104	float[]={0.0,0.0,0.0,1.0, 0.0,0.0,0.0,1.0}
				}
			}
		Chunk_6720 {
			block_6672	#items=1
			Chunk_6672 {
				block_53264	long=1
				block_53280	char=1
				}
			}
		block_6736	long
		block_6752	string="Default"
		Chunk_6816 {
			block_6672	float[]={min.x, min.y, min.z}
			block_6688	float[]={max.x, max.y, max.z}
			}
		Chunk_6832 {
			block_6672	float[]={x.orient, y.orient, z.orient}
			block_6688	float=scale
			}
		}
	}
